package com.neusoft.neuiotms.dcom.dto;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.neusoft.bizcore.web.dto.AbstractAuditDTO;
import com.neusoft.neuiotms.dcom.model.MaintainRule;
import com.neusoft.neuiotms.dcom.model.enums.MaintainRuleSource;
import com.neusoft.neuiotms.dcom.model.enums.MaintainTaskResultStatus;
import com.neusoft.neuiotms.dcom.model.enums.MaintainTaskSourceEnum;
import com.neusoft.neuiotms.dcom.model.enums.MaintainTaskStatusEnum;
import com.neusoft.neuiotms.dcom.model.enums.StopServiceNoticeSendStatusEnum;

import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public class MaintainTaskDTO extends AbstractAuditDTO {

    private static final long serialVersionUID = 8991082036655715470L;

    /** 编码 **/
    private String code;

    /** 名称 **/
    private String name;

    /** 计划编码 **/
    private String PlanCode;

    /** 计划名称 **/
    private String PlanName;

    /** 计划版本 **/
    private Long planVersion;

    /** 维护类别 **/
    private String modelCode;

    /** 维护类别名称 **/
    private String modelName;

    /** 维护规则Id **/
    private long ruleId;

    /** 维护规则 **/
    private String ruleCode;

    /** 维护规则名称 **/
    private String ruleName;

    /** 对象Code **/
    private String objCode;

    /** 对象名称 **/
    private String objName;

    /** 是否停止服务 **/
    private boolean suspendService;

    /** 任务状态 **/
    private MaintainTaskStatusEnum status = MaintainTaskStatusEnum.undo;

    /** 量化时间(小时) **/
    private int quantifyingTime;

    /** 维护规则 **/
    private MaintainRule rule;

    /** 部门Code **/
    private String orgCode;

    /** 部门名称 **/
    private String orgName;

    /** 执行人ID **/
    private Long chargeUserId;

    /** 执行人username **/
    private String chargeUserCode;

    /** 执行人name **/
    private String chargeUserName;

    /** 开始时间 **/
    @JsonFormat(timezone = "GMT+8")
    private Date startDateTime;

    /** 结束时间 **/
    @JsonFormat(timezone = "GMT+8")
    private Date endDateTime;

    /** 结果状态 **/
    private MaintainTaskResultStatus result;

    /** 参与人 **/
    private String joinUser;

    /** 联系电话 **/
    private String tel;

    /** 服务通知发送状态 **/
    private StopServiceNoticeSendStatusEnum noticeSendStatus;

    /** 结果描述 **/
    private String resultDesc;

    /** 维护过程 **/
    private String processDesc;

    /** 备注 **/
    private String remarks;

    /** 是否生成规则 **/
    private boolean createRule = false;

    /** 规则来源 **/
    private MaintainRuleSource ruleSource = MaintainRuleSource.newcreate;

    /** 任务来源 **/
    private MaintainTaskSourceEnum source = MaintainTaskSourceEnum.period;

    /** 对象集合 **/
    private String jsonObjs;

    /** 维护说明 **/
    private String description;

    /** 版本 **/
    private Long version;
}
